﻿using GameFramework.Battle.Core;
using System.Collections.Generic;
using UnityEngine;
namespace Yoozoo.Gameplay.RTS
{
    public interface IModel
    {
        int index { get; set; }
        GameObject GameObject { get; set; }
        Transform Transform { get; set; }
        float animatorSpeed { get; set; }
        void OnCreate();
        void OnUpdate();
        void OnUse();
        void OnFree();
        Transform Get(string name);
        T Get<T>() where T : Component;
        void Gets<T>(ref List<T> list) where T : Component;
        void SetLayer(int layer);
        int InstanceID();
        void SharedRim(Color color);
        void SetAnimatorTrigger(EAnimationType trigger, bool isReplay, float playSpeed = 1);
        void HideShadow();
        void SetAnimatorEnabled(bool active);
        float GetAnimationLength(string aniName, float delValue = 0.1f);
        void SetPosition(Vector3 position);
        void SetAnimatorSpeed(float speed);
        Vector3 GetForward();
        void ResetScale();
        void SetScale(float localScale,float shadowScale = 0);
        void SetRotation(Vector3 rotation);
        void SetForward(Vector3 forward);
        Vector3 GetRotation();
        void SetAlpha(float alpha);
        void SetCampColor(Color color);
        void SetShadowPosition();
    }
}
